<?php
	// AUTOLOAD	
	// Utiliser la fonction registerClass() pour enregistrer une classe dans l'autoload.
	require_once realpath(dirname(__FILE__)).'/auto_load_array.php';

	spl_autoload_register('_autoLoad');                                                                                                          	

	/**
	 * Fonction d'autoload des classes de l'application
	 * 
	 * @param string $sClassName : nom de la classe appelée
	 */
	function _autoLoad($sClassName)                                                                                                                       
	{ 
		global $gsClasses;
		global $gsMenu;
		
		try
		{
	    	if (isset($gsClasses[$sClassName]))
	        {	
	        	include_once($gsClasses[$sClassName]);
	        }
	        else
	        {
		     	$sError = 'La classe '. $sClassName .' n\'existe pas.';
		        throw new Exception($sError);
	        }
	        //pour le menu
	        foreach($gsMenu as $sID => $sLib)
	        {
	        	if (!defined("_MENU_".$sID))
				{
	        		Define("_MENU_".$sID, $sLib);
	        		//echo constant("_MENU_".$sID);
				}
	        	
	        }
	        
	        
	    }
	    catch(Exception $e)
	    {
				trigger_error($e->getMessage(),E_USER_ERROR);
	    }
	}

	/**
	 * Enregister une classe pour l'autoload
	 * 
	 * @param $sClassName	Nom de la classe.
	 * @param $sFileName	Fichier de la classe relatif à CPATH
	 */
	function registerClass($sClassName,$sFileName)
	{
		global $gsClasses;
		
		if (isset($gsClasses[$sClassName]))
		{
			
		}
		else
		{
			$gsClasses[$sClassName]=$sFileName;
		}
	}
	
	function registerMenu($sId, $sNom)
	{
		global $gsMenu;
		
		if (isset($gsMenu[$sId]))
		{
			
		}
		else
		{
			$gsMenu[$sId] = $sNom;
		}
	}
?>